<?xml version="1.0" encoding="UTF-8"?>
<html filename="docs/BSAXExt/IBufferedDeclHandler.html">
<body>
<a id="#top"/>
<h1>
	                Interface Summary : IBufferedDeclHandler </h1> SAX2 extension handler for DTD declaration events.

 <blockquote>
 <em>This module, both source code and documentation, is in the
 Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
 </blockquote>

 <p>This is an optional extension handler for SAX2 to provide more
 complete information about DTD declarations in an XML document.
 XML readers are not required to recognize this handler, and it
 is not part of core-only SAX2 distributions.</p>

 <p>Note that data-related DTD declarations (unparsed entities and
 notations) are already reported through the <a href="../BSAX/IBufferedDTDHandler.html">IBufferedDTDHandler</a>
 interface.</p>

 <p>If you are using the declaration handler together with a lexical
 handler, all of the events will occur between the
 <a href="../BSAXExt/IBufferedLexicalHandler.html#startDTD">startDTD</a> and the
 <a href="../BSAXExt/IBufferedLexicalHandler.html#endDTD">endDTD</a> events.</p>

 <p>To set the DeclHandler for an XML reader, use the
 <a href="../BSAX/IBufferedXMLReader.html#getProperty">getProperty</a> method
 with the property name
 <code>http://xml.org/sax/properties/declaration-handler</code>
 and an object implementing this interface (or nil) as the value.
 If the reader does not report declaration events, it will throw a
 <a href="../SAX/ESAXNotRecognizedException.html">ESAXNotRecognizedException</a>
 when you attempt to register the handler.</p>

 <p>For reasons of generality and efficiency, strings that are returned
 from the interface are declared as pointers (PSAXChar) and lengths.
 This requires that the model use procedural out parameters rather
 than functions as in the original interfaces.</p>

<br/><b>Since : </b> SAX 2.0 (extensions 1.0)
<br/><b>See : </b> <a href="../BSAX/IBufferedXMLReader.html">IBufferedXMLReader</a>

<h2>
	              Methods
	            </h2>
<div style="padding-left:10px">
<a href="#elementDecl">
	                  procedure
	                 elementDecl(PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#attributeDecl">
	                  procedure
	                 attributeDecl(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#internalEntityDecl">
	                  procedure
	                 internalEntityDecl(PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#externalEntityDecl">
	                  procedure
	                 externalEntityDecl(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
</div>
<br/>
<hr width="100%"/>
<a name="#elementDecl">
<p>
<b>procedure</b> elementDecl( name : PSAXChar;  nameLength : Integer;  model : PSAXChar;  modelLength : Integer); </p>
</a> Report an element type declaration.

 <p>The content model will consist of the string &quot;EMPTY&quot;, the
 string &quot;ANY&quot;, or a parenthesised group, optionally followed
 by an occurrence indicator.  The model will be normalized so
 that all parameter entities are fully resolved and all whitespace
 is removed,and will include the enclosing parentheses.  Other
 normalization (such as removing redundant parentheses or
 simplifying occurrence indicators) is at the discretion of the
 parser.</p>

<br/><b>Parameter : </b> name The element type name.
<br/><b>Parameter : </b> nameLength The length of the name buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> model The content model as a normalized string.
<br/><b>Parameter : </b> modelLength The length of the model buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Exception : </b> ESAXException The application may raise an exception.
/
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#attributeDecl">
<p>
<b>procedure</b> attributeDecl( eName : PSAXChar;  eNameLength : Integer;  aName : PSAXChar;  aNameLength : Integer;  attrType : PSAXChar;  attrTypeLength : Integer;  mode : PSAXChar;  modeLength : Integer;  value : PSAXChar;  valueLength : Integer); </p>
</a> Report an attribute type declaration.

 <p>Only the effective (first) declaration for an attribute will
 be reported.  The type will be one of the strings &quot;CDATA&quot;,
 &quot;ID&quot;, &quot;IDREF&quot;, &quot;IDREFS&quot;, &quot;NMTOKEN&quot;, &quot;NMTOKENS&quot;, &quot;ENTITY&quot;,
 &quot;ENTITIES&quot;, a parenthesized token group with
 the separator &quot;|&quot; and all whitespace removed, or the word
 &quot;NOTATION&quot; followed by a space followed by a parenthesized
 token group with all whitespace removed.</p>

 <p>The value will be the value as reported to applications,
 appropriately normalized and with entity and character
 references expanded.</p>

<br/><b>Parameter : </b> eName The name of the associated element.
<br/><b>Parameter : </b> eNameLength The length of the eName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> aName The name of the attribute.
<br/><b>Parameter : </b> aNameLength The length of the aName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> attrType A string representing the attribute type.
<br/><b>Parameter : </b> attrTypeLength The length of the attrType buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> mode A string representing the attribute defaulting mode
        (&quot;#IMPLIED&quot;, &quot;#REQUIRED&quot;, or &quot;#FIXED&quot;) or '' if
        none of these applies.
<br/><b>Parameter : </b> modeLength The length of the mode buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> value A string representing the attribute's default value,
        or an empty string if there is none.
<br/><b>Parameter : </b> valueLength The length of the value buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Exception : </b> ESAXException The application may raise an exception.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#internalEntityDecl">
<p>
<b>procedure</b> internalEntityDecl( name : PSAXChar;  nameLength : Integer;  value : PSAXChar;  valueLength : Integer); </p>
</a> Report an internal entity declaration.

 <p>Only the effective (first) declaration for each entity
 will be reported.  All parameter entities in the value
 will be expanded, but general entities will not.</p>

<br/><b>Parameter : </b> name The name of the entity.  If it is a parameter
        entity, the name will begin with '%'.
<br/><b>Parameter : </b> nameLength The length of the name buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> value The replacement text of the entity.
<br/><b>Parameter : </b> valueLength The length of the value buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Exception : </b> ESAXException The application may raise an exception.
<br/><b>See : </b> <a href="../BSAXExt/IBufferedDeclHandler.html#externalEntityDecl">IBufferedDeclHandler.externalEntityDecl</a>
<br/><b>See : </b> <a href="../BSAX/IBufferedDTDHandler.html#unparsedEntityDecl">IBufferedDTDHandler.unparsedEntityDecl</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#externalEntityDecl">
<p>
<b>procedure</b> externalEntityDecl( name : PSAXChar;  nameLength : Integer;  publicId : PSAXChar;  publicIdLength : Integer;  systemId : PSAXChar;  systemIdLength : Integer); </p>
</a> Report a parsed external entity declaration.

 <p>Only the effective (first) declaration for each entity
 will be reported.</p>

<br/><b>Parameter : </b> name The name of the entity.  If it is a parameter
        entity, the name will begin with '%'.
<br/><b>Parameter : </b> nameLength The length of the name buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> publicId The declared public identifier of the entity, or
        the empty string if none was declared.
<br/><b>Parameter : </b> publicIdLength The length of the publicId buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> systemId The declared system identifier of the entity.
<br/><b>Parameter : </b> systemIdLength The length of the systemId buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Exception : </b> ESAXException The application may raise an exception.
<br/><b>See : </b> <a href="../BSAXExt/IBufferedDeclHandler.html#internalEntityDecl">IBufferedDeclHandler.internalEntityDecl</a>
<br/><b>See : </b> <a href="../BSAX/IBufferedDTDHandler.html#unparsedEntityDecl">IBufferedDTDHandler.unparsedEntityDecl</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
</body>
</html>